Table des matières
BackupPC – Serveur de Sauvegarde
3.1) Accès à la console de la Jail
3.4) Création d’un utilisateur “backuppc”
3.5) Installation de backuppc et ses dépendances
3.6) Vérification répertoire de BackupPC
Configuration du fichier /usr/local/etc/smb4.conf :
Lancement du script de configuration de BackupPC :
Configuration du fichier /usr/local/etc/backuppc/config.pl :
Démarrage automatique pour les services backuppc et apache :
Création d’un fichier de mot de passe BackupPC :
Création d’un lien backuppc.pl pointant vers BackupPC_Admin :
4.2) Configuration du site BackupPC :
Redémarrage des services BackupPC et Apache :
4.3) Création clé publique SSH
Connexion en tant que backuppc :
Création d’une clé publique SSH :
Copie de la clé publique pour l’identifier et éviter les confusions :
Se connecter à l’interface Web :
6) Configuration d’un client Linux
6.2) Configuration d’un Client Linux (Méthode Rsync)
6.3) Configuration sur le client Linux
Configuration du fichier authorized_keys de root :
Connexion en tant que BackupPC :
7) Configuration d’un client Windows
7.2) Configuration d’un Client Windows (Méthode SMB)
Nous allons, dans ce tutoriel, installer et configurer un outil centralisé de sauvegarde nommé BackupPC.
Derrière son interface web rudimentaire se cache de nombreuses fonctionnalités.
.Fonctionnalités :
.Sauvegardes incrémentielles
.Versionnage des sauvegardes
.Optimisation de l’espace disque grâce à une gestion des fichiers dupliqués
.Planification des sauvegardes
.Sauvegarde de machine Windows et Linux
Pour des questions d’organisation, nous allons créer un dataset Backups dédié aux sauvegardes.
Ce dernier contiendra un dataset enfant pour chaque solution de sauvegarde (Ici : BackupPC).
Pour des questions de sécurité, ce dataset ne doit pas être accessible à tout le monde.
Ci-dessous, quelques exemples à ajuster en fonction de votre contexte.
Création d’une jail backuppcjail dans laquelle sera hébergé BackupPC.
Cliquer sur Jails dans le panneau de gauche de FreeNAS puis cliquer sur ADD.
Nous allons créer un point de montage afin que le répertoire de sauvegarde de BackupPC pointe sur le dataset créé à l’étape précédente.
1 | iocage stop backuppcjail |
1 2 3 4 5 6 7 8 9 | # Création du répertoire BackupPC dans le système de fichiers de la jail mkdir -p /mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/
# Création point de montage iocage fstab -a backuppcjail "/mnt/NORMAL_500GB/Backups/BackupPC/ /var/db/BackupPC/ nullfs rw 0 0"
# Vérifications iocage fstab -l backuppcjail ls -lah /mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/ |
1./mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/ est la racine de la Jail depuis FreeNAS.
2./mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/ est le chemin des Backups de la Jail depuis FreeNAS.
3./var/db/BackupPC/ est le chemin des Backups dans la Jail.
4./mnt/NORMAL_500GB/Backups/BackupPC/ est le chemin des Backups dans FreeNAS.
5.Les chemins 2, 3 et 4 représentent donc le même répertoire
Cette manipulation est également possible depuis l’interface Web de FreeNAS.
1 | iocage console backuppcjail --force |
1 | pkg update -f |
Un message invitant à installer l’outil de gestion des paquets pourrait s’afficher.
Approuver avec “y”.
1 | pkg upgrade -y |
1 | adduser |
1 2 | pkg install -y nano perl5 rsync rsync-bpc rrdtool \ php74-pecl-smbclient samba412 rrdtool par2cmdline p5-XML-RSS backuppc4 apache24 |
1 | ls -lah /var/db/BackupPC/ |
1 | ls -lah /mnt/NORMAL_500GB/Backups/BackupPC/ |
Important : Le contenu des répertoires doit être identique car il s’agit du même répertoire grâce au point de montage.
Se connecter à la Jail si ce n’est pas déjà fait.
1 | nano /usr/local/etc/smb4.conf |
Contenu :
1 2 3 | [global] client min protocol = SMB2 client max protocol = SMB3 |
1 | testparm -s |
1 | /usr/local/etc/backuppc/update.sh |
Les choix par défaut conviennent dans la plupart des cas.
1 2 3 4 | # Définition de l'utilisateur backuppc en tant qu'admin de BackupPC sed -i -e \ 's/^\$Conf{CgiAdminUsers}.*$/\$Conf{CgiAdminUsers} = '\''backuppc'\'';/g' \ /usr/local/etc/backuppc/config.pl |
Attention :
Il ne s’agit pas de l’utilisateur UNIX backuppc.
Mais d’un utilisateur stocké dans un fichier (une base de compte) spécifique pour Apache.
1 2 | chown -R backuppc:backuppc /usr/local/etc/backuppc/ chown -R backuppc:backuppc /var/db/BackupPC/ |
1 2 | sysrc backuppc_enable=YES sysrc apache24_enable=YES |
1 | htpasswd -c /usr/local/etc/backuppc/htpasswd backuppc |
Ce chemin est renseigné plus bas dans la configuration Apache du site.
Si vous le modifier,
Attention :
Il ne s’agit pas de l’utilisateur UNIX backuppc.
Mais d’un utilisateur stocké dans le fichier (la base de compte) htpasswd que nous renseignerons dans la configuration d’Apache.
1 | ln -s /usr/local/www/cgi-bin/BackupPC_Admin /usr/local/www/cgi-bin/backuppc.pl |
1 | nano /usr/local/etc/apache24/Includes/backuppc.conf |
Contenu :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | # Set ServerName ServerName backuppc.localdomain:80
# Run Apache24 as 'backuppc:backuppc' User backuppc Group backuppc
# Load CGI modules LoadModule cgid_module libexec/apache24/mod_cgid.so LoadModule cgi_module libexec/apache24/mod_cgi.so
ScriptAlias /bpc /usr/local/www/cgi-bin/
<Directory /usr/local/www/cgi-bin/> AllowOverride None Allow from all
# Uncomment the line below to ensure that nobody can sniff important # info from network traffic during editing of the BackupPC config or # when browsing/restoring backups. # Requires that you have your webserver set up for SSL (https) access. #SSLRequireSSL
Options +ExecCGI -MultiViews +FollowSymlinks DirectoryIndex backuppc.pl
AuthUserFile /usr/local/etc/backuppc/htpasswd AuthType basic AuthName "BackupPC admin" require valid-user
</Directory>
Alias /backuppc /usr/local/www/backuppc/ <Directory /usr/local/www/backuppc/ > # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # AllowOverride FileInfo AuthConfig Limit # AllowOverride None
# # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. #
# # Controls who can get stuff from this server. # Require all granted
DirectoryIndex BackupPC.html
</Directory> |
1 2 | service backuppc restart service apache24 restart |
1 | su - backuppc |
1 | ssh-keygen -t rsa |
Sélectionner les choix par défaut et ne pas définir de passphrase pour conserver l’automatisme.
1 2 3 | cp /home/backuppc/.ssh/id_rsa.pub /home/backuppc/.ssh/BackupPC_backuppc_id_rsa.pub ls -lah /home/backuppc/.ssh/BackupPC_backuppc_id_rsa.pub cat /home/backuppc/.ssh/BackupPC_backuppc_id_rsa.pub |
Cette clé publique (contenue dans le fichier BackupPC_backuppc_id_rsa.pub) devra être importée sur les postes clients.
Vous pouvez la copier hors du serveur dans un lieu sûr pour la suite du tutoriel.
Important : La clé privée contenu dans le fichier id_rsa (sans .pub) ne doit en aucun cas être diffusée.
L’url de l’interface Web de BackupPC sera : http://AdresseIP/bpc/ (Exemple : http://192.168.1.101/bpc/)
Important : L’ensemble du tutoriel sera fait avec l’interface en Anglais.
Cliquer sur Edit Hosts dans le panneau de gauche puis sur Add et renseigner les informations.
Cliquer sur Save pour enregistrer la configuration.
Important :
Le nom saisi doit pouvoir être résolu par le serveur BackupPC.
Exemple : ping linux-pc
Si ce n’est pas le cas, il faudra :
– Soit corriger la configuration DNS dans le fichier /etc/resolv.conf
– Soit ajouter une entrée dans le fichier /etc/hosts
Sélectionner l’hôte dans la liste HOSTS puis cliquer sur Edit Config puis cliquer sur l’onglet Xfer.
.XferMethod : Choisir la Méthode rsync.
.RsyncShareName : Renseigner le répertoire à sauvegarder sur le client.
.RsyncClientPath : Corriger la localisation de rsync sur le poste client (Très important).
Cliquer sur Save.
Le serveur BackupPC aura besoin de se connecter en SSH sans mot de passe et sans interaction utilisateur.
Pour cela, nous allons importer la clé publique du serveur BackupPC dans le profil de l’utilisateur root sur la machine à sauvegarder.
Opérations à effectuer sur la machine à sauvegarder.
1 2 | ls -lah /root/.ssh/ || mkdir -p /root/.ssh/ nano /root/.ssh/authorized_keys |
Copier la clé publique générée précédemment dans le fichier authorized_keys de root (sur une seule ligne).
Important : Il faudra installer rsync sur la machine à sauvegarder si ce n’est pas déjà fait.
Opérations à effectuer sur le serveur BackupPC.
1 | su - backuppc |
1 | ssh root@linux-pc |
La connexion devrait se faire sans demande de mot de passe.
Un message devrait apparaitre lors de la toute première connexion, il faudra l’accepter.
Cliquer sur Edit Hosts dans le panneau de gauche puis sur Add et renseigner les informations.
Cliquer sur Save pour enregistrer la configuration.
Important :
Le nom saisi doit pouvoir être résolu par le serveur BackupPC.
Exemple : ping windows-pc
Si ce n’est pas le cas, il faudra :
– Soit corriger la configuration DNS dans le fichier /etc/resolv.conf
– Soit ajouter une entrée dans le fichier /etc/hosts
Sélectionner l’hôte dans la liste HOSTS puis cliquer sur Edit Config puis cliquer sur l’onglet Xfer.
.XferMethod : Choisir la Méthode smb.
.SmbShareName : Renseigner le répertoire partagé à sauvegarder sur le client.
.SmbShareUserName : Nom d’utilisateur pour la connexion au répertoire partagé.
.SmbShareUserPasswd : Mot de passe pour la connexion au répertoire partagé.
Cliquer sur Save.
Vous avez enfin installé et configuré BackupPC pour effectuer des sauvegardes de vos machines Windows et Linux.
Il ne reste plus qu’à :
.Configurer vos propres machines
.Utiliser la section commentaires pour me faire part de vos remarques ou problèmes rencontrés.
.Visiter la page BackupPC Documentation pour aller plus loin dans l’utilisation de BackupPC